#!/bin/bash

# 定义要检查的软件命令
commands=(
    "node"    		# Node.js
    "npm"     		# npm
    "cmake"   		# CMake
    "ninja"   		# Ninja-build
)

# 定义对应的安装包名
packages=(
    "nodejs"
    "npm"
    "cmake"
    "ninja-build"
)

# 检查Node.js源并安装
if ! command -v node &> /dev/null; then
    echo "安装Node.js源..."
    curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
fi

# 遍历检查并安装软件
for i in "${!commands[@]}"; do
    cmd="${commands[$i]}"
    pkg="${packages[$i]}"
    
    if command -v "$cmd" &> /dev/null; then
        echo "✓ $cmd 已安装"
    else
        echo "安装 $pkg..."
        apt-get install -y "$pkg"
    fi
done

# 检查并安装npm全局包
if ! npm list -g lv_font_conv --depth=0 &> /dev/null; then
    echo "安装 lv_font_conv..."
    npm install -g lv_font_conv
else
    echo "✓ lv_font_conv 已安装"
fi

echo "所有软件检查和安装完成！"

echo
echo
echo "软件版本信息："
echo -n "Node.js 版本: " && node -v
echo -n "npm 版本: " && npm -v
echo -n "lv_font_conv 版本: " && lv_font_conv -v
echo -n "ninja 版本: " && ninja --version
echo -n "CMake 版本: " && cmake --version | head -n 1	#cmake --version 使用 head -n 1 只显示第一行的版本信息，避免输出过多冗余内容
echo